package com.itheima.common.exception;

import com.itheima.common.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author ljh
 * @version 1.0
 * @date 2021/11/26 08:48
 * @description 标题
 * @package com.itheima.common.exception
 */
@RestControllerAdvice//异常处理类
public class GlobalExceptionHandler {

    private static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);


    //处理器（handler） 当出现了exception的时候执行该方法  系统异常
    @ExceptionHandler(value = Exception.class)
    public Result handlerException(Exception e){

        //获取异常信息
        //e.printStackTrace();//????生产环境不能堆栈打印  日志
        logger.error("系统异常:",e);
        //统一处理返回一个result
        return Result.errorMessage(e.getMessage());
    }

    //业务上异常处理
    @ExceptionHandler(value = LeadNewsException.class)
    public Result handlerLeadNewsException(LeadNewsException e){

        //获取异常信息
        //e.printStackTrace();//????生产环境不能堆栈打印  日志
        //统一处理返回一个result
        logger.error("业务异常:",e);
        return Result.errorMessage(e.getMessage());
    }
}
